<TagAttribute("decal","deca","????","????",1,268)>
Public Class DECAL_TAG
Inherits HaloTag
Public Const Extension as String = "decal"
Public Const FourCC as String = "deca"
Public Const ParentFourCC as String = "????"
Public Const GrandParentFourCC as String = "????"
Public Const [Version] as Short = 1
Public Const HeaderLength as Integer = 268

''' <summary>
''' A 'compound decal' is a chain
''' </summary>
#Region "decal"

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 19)>
Public flags as Short

''' <summary>
''' controls how the decal wraps onto surface geometry
''' </summary>
<TagField("type", 1, 17)>
Public type as Short

''' <summary>
''' 
''' </summary>
<TagField("layer", 1, 17)>
Public layer as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("next decal in chain", 16, 10)>
Public next_decal_in_chain as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
#End Region
#Region "radius and color"

''' <summary>
''' 0 defaults to 0.125
''' </summary>
<TagField("radius:world units", 2, 1)>
Public radius as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_1 as Byte()

''' <summary>
''' 1 is fully visible, 0 is invisible
''' </summary>
<TagField("intensity:[0,1]", 2, 1)>
Public intensity as Single()

''' <summary>
''' 
''' </summary>
<TagField("color lower bounds", 3, 2)>
Public color_lower_bounds as Single()

''' <summary>
''' 
''' </summary>
<TagField("color upper bounds", 3, 2)>
Public color_upper_bounds as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_2 as Byte()

''' <summary>
''' 
''' </summary>
#End Region
#Region "animation"

''' <summary>
''' 
''' </summary>
<TagField("animation loop frame", 1, 23)>
Public animation_loop_frame as Short

''' <summary>
''' 
''' </summary>
<TagField("animation speed:[1,120] ticks per frame", 1, 23)>
Public animation_speed as Short

''' <summary>
''' 
''' </summary>
<TagField("", 28, -1)>
Public padding_3 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("lifetime:seconds", 2, 1)>
Public lifetime as Single()

''' <summary>
''' 
''' </summary>
<TagField("decay time:seconds", 2, 1)>
Public decay_time as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_4 as Byte()

''' <summary>
''' 
''' </summary>
#End Region
#Region "shader"

''' <summary>
''' 
''' </summary>
<TagField("", 40, -1)>
Public padding_5 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_6 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_7 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("framebuffer blend function", 1, 17)>
Public framebuffer_blend_function as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_8 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 20, -1)>
Public padding_9 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("map", 16, 10)>
Public map as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 20, -1)>
Public padding_10 as Byte()

''' <summary>
''' 
''' </summary>
#End Region
#Region "sprite info"

''' <summary>
''' 
''' </summary>
<TagField("maximum sprite extent:pixels", 1, 0)>
Public maximum_sprite_extent as Single

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_11 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_12 as Byte()
#End Region

End Class
